/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package negocio;

import javax.microedition.rms.RecordStore;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.InputStream;
import java.util.Vector;
import jogo.Jogador;
import util.*;

/**
 *
 * @author Thiago Nascimento
 */
public class Repositorio {
   
    
    public Repositorio(){
    }
    
    /**
     * Abre um recurso.
     * 
     * Ex.: Arquivo texto, imagens, etc. 
     * 
     * @param idRecurso Identificador do recurso.
     * @return Dados do recurso.
     */
    public InputStream abrirRecurso(int idRecurso) {
        InputStream is = this.getClass().getResourceAsStream(Constantes.RESOURCE_PATH + idRecurso);
        
        return is;
    }
    
    
    public void salvarJogadorRMS(int i, Jogador j){
        try {
            RecordStore rd = RecordStore.openRecordStore(Constantes.RMS_JOGADORES, true);
            if(rd.getNumRecords()==0){
                //Caso n tenha sido inicializado cria um
                rd.addRecord(new byte[1], 0, 1);
                rd.addRecord(new byte[1], 0, 1);
                rd.addRecord(new byte[1], 0, 1);
                rd.addRecord(new byte[1], 0, 1);
            }else{
                Vector v = new Vector();
                v.addElement(j.getNome());
                v.addElement(new Boolean(j.ehMaquina()));
                byte[] b = Util.empacotarParametros(v);
                rd.setRecord(i, b, 0, b.length);
            }
            
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        
    }
    
    public Jogador buscarJogadorRMS(int i){
         Jogador j = new Jogador(); 
        try {
            RecordStore rd = RecordStore.openRecordStore(Constantes.RMS_JOGADORES, true);
            j = new Jogador();           
                       
            ByteArrayInputStream bas = new ByteArrayInputStream(rd.getRecord(i));
            DataInputStream dis = new DataInputStream(bas);
            
            j.setNome(dis.readUTF());
            j.setEhMaquina(dis.readBoolean());         
        
            
        } catch (Exception ex) {
            ex.printStackTrace();
        }
         
         return j;
        
    }

}
